Идентификатор

— это последовательность символов, используемая как имя для обозначения одного из следующих элементов:

  • переменной
  • уникального объекта или локации
  • класса
  • признака
  • ...
  • слова или предлога

Допустимые символы

...

Структура идентификатора

Идентификатор в общем случае имеет вид:

[префикс] < имя 1 > [ _ < имя 2 > [... _ < имя N >]] [: < суффикс >]

Где:
Префикс - один или два символа, обозначающих вид идентификатора:

  • _ - скрытый идентификатор;
  • @ - идентификатор класса;
  • @_ - идентификатор скрытого класса;
  • @@ - идентификатор скрытого библиотечного класса;
  • $ - идентификатор слова;
  • # - префикс ключа.

(Ключ рассматривается как самостоятельный тип данных и идентификатором не является).

Имя 1 - имя N - основная часть идентификатора. Состоит из одного или нескольких имён, разделённых знаком "_", и служит для сопоставления со словами в процессе парсинга.

Суффикс - произвольное окончание идентификатора, отделенное от основной части знаком ":", и не сопоставляемое со словами.

Примеры:

мальчик
_мальчик
@мальчик
$мальчик
мальчик:2
а_был_ли_мальчик

Доступные и скрытые идентификаторы

Доступными считаются идентификаторы, которые тем или иным способом можно сопоставить со словами. Значения таких идентификаторов становятся доступны из командной строки в игровом режиме, и принимают участие в парсинге игровой команды.
Скрытыми считаются все прочие идентификаторы. Простой и надёжный способ скрыть идентификатор - это добавить к нему префикс "_".

Пример:

яблоко{} //объект с доступным идентификатором
var _XYZ //переменная со скрытым идентификатором

Запросы к словарю

Идентификатор, впервые встреченный в тексте кода, инициирует поиск и загрузку соответствующей словарной статьи из словаря, как если бы соответствующее ему слово было введёно в командной строке.

Сопоставление идентификатора со словом

Для сопоставления идентификатора со словом основная часть идентификатора (та что между префиксом и суффиксом) должна совпасть с идентификатором слова.

Пример:

@сундук:2{} //совпадает со словом $сундук

Сопоставление идентификатора со словосочетанием

Существуют несколько парсерных комбинаторов, объединяющих стоящие рядом в команде слова по своим правилам, и сопоставляющим получившийся результат с доступными идентификаторами.

Например:
В команде >возьми табакерку дедушки словосочетание "табакерку дедушки" будет сопосталено с идентификатором табакерка_дедушки, если таковой найдётся в системе.

Сопоставление идентификатора с предлогом

Также, есть комбинаторы объединяющие предлог со словом.

Например:
В команде >лезь на башню словосочетание "на башню" будет сопосталено с идентификатором на_башне.

Примечания

...

Смотрите также

Слово, Предлог, Встроенные парсерные комбинаторы, Стандартная библиотека


to do:
Проверить корректность
Дописать.